home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / PULSCAN2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  4.8 KB  |  203 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.util.Random;
  9.  
  10. public class PulsingShapesCanvas2 extends Canvas implements Runnable {
  11.    Thread appThread;
  12.    Image osImage;
  13.    Graphics osg;
  14.    Color bkColor;
  15.    Image bkImage;
  16.    Random randomizer;
  17.    int shapeCount;
  18.    // $FF: renamed from: x int[]
  19.    int[] field_0;
  20.    // $FF: renamed from: y int[]
  21.    int[] field_1;
  22.    int[] maxW;
  23.    int[] maxH;
  24.    int[] color;
  25.    int[] currW;
  26.    int[] currH;
  27.    int[] pulseDir;
  28.    int[] shapeType;
  29.    Color[] defaultColors;
  30.    int minWidth;
  31.    int minHeight;
  32.    int maxWidth;
  33.    int maxHeight;
  34.    int maxShapes;
  35.    int minShapes;
  36.  
  37.    public PulsingShapesCanvas2(Applet var1, int var2) {
  38.       this.GetParameters(var1, var2);
  39.       this.defaultColors = new Color[13];
  40.       this.defaultColors[0] = Color.black;
  41.       this.defaultColors[1] = Color.blue;
  42.       this.defaultColors[2] = Color.cyan;
  43.       this.defaultColors[3] = Color.darkGray;
  44.       this.defaultColors[4] = Color.gray;
  45.       this.defaultColors[5] = Color.green;
  46.       this.defaultColors[6] = Color.lightGray;
  47.       this.defaultColors[7] = Color.magenta;
  48.       this.defaultColors[8] = Color.orange;
  49.       this.defaultColors[9] = Color.pink;
  50.       this.defaultColors[10] = Color.red;
  51.       this.defaultColors[11] = Color.white;
  52.       this.defaultColors[12] = Color.yellow;
  53.    }
  54.  
  55.    void GetParameters(Applet var1, int var2) {
  56.       String var3 = var1.getParameter("pulsingShapesBkColor" + var2);
  57.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  58.       if (this.bkColor != null) {
  59.          ((Component)this).setBackground(this.bkColor);
  60.       }
  61.  
  62.       var3 = var1.getParameter("pulsingShapesBkImage" + var2);
  63.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  64.       var3 = var1.getParameter("pulsingShapesMinWidth" + var2);
  65.       this.minWidth = AppletParam2.GetInt(var3, 10);
  66.       var3 = var1.getParameter("pulsingShapesMinHeight" + var2);
  67.       this.minHeight = AppletParam2.GetInt(var3, 10);
  68.       var3 = var1.getParameter("pulsingShapesMaxWidth" + var2);
  69.       this.maxWidth = AppletParam2.GetInt(var3, 50);
  70.       var3 = var1.getParameter("pulsingShapesMaxHeight" + var2);
  71.       this.maxHeight = AppletParam2.GetInt(var3, 50);
  72.       var3 = var1.getParameter("pulsingShapesMaxShapes" + var2);
  73.       this.maxShapes = AppletParam2.GetInt(var3, 50);
  74.       var3 = var1.getParameter("pulsingShapesMinShapes" + var2);
  75.       this.minShapes = AppletParam2.GetInt(var3, 10);
  76.    }
  77.  
  78.    public void Start() {
  79.       this.appThread = new Thread(this);
  80.       this.appThread.start();
  81.    }
  82.  
  83.    public void Stop() {
  84.       this.appThread.stop();
  85.       this.appThread = null;
  86.    }
  87.  
  88.    public void update(Graphics var1) {
  89.       if (this.osImage == null) {
  90.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  91.          this.osg = this.osImage.getGraphics();
  92.       }
  93.  
  94.       this.osg.setColor(((Component)this).getBackground());
  95.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  96.       if (this.bkImage != null) {
  97.          int var2 = this.bkImage.getWidth(this);
  98.          int var3 = this.bkImage.getHeight(this);
  99.          int var4 = ((Component)this).size().width / var2;
  100.          int var5 = ((Component)this).size().height / var3;
  101.          ++var4;
  102.          ++var5;
  103.  
  104.          for(int var6 = 0; var6 < var5; ++var6) {
  105.             for(int var7 = 0; var7 < var4; ++var7) {
  106.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  107.             }
  108.          }
  109.       }
  110.  
  111.       for(int var8 = 0; var8 < this.shapeCount; ++var8) {
  112.          this.osg.setColor(this.defaultColors[this.color[var8]]);
  113.          if (this.shapeType[var8] == 0) {
  114.             this.osg.fillRect(this.field_0[var8] - this.currW[var8] / 2, this.field_1[var8] - this.currH[var8] / 2, this.currW[var8], this.currH[var8]);
  115.          } else {
  116.             this.osg.fillOval(this.field_0[var8] - this.currW[var8] / 2, this.field_1[var8] - this.currH[var8] / 2, this.currW[var8], this.currH[var8]);
  117.          }
  118.       }
  119.  
  120.       var1.drawImage(this.osImage, 0, 0, this);
  121.    }
  122.  
  123.    public void run() {
  124.       while(true) {
  125.          try {
  126.             ((Component)this).repaint();
  127.             this.UpdateSizes();
  128.             Thread.sleep(250L);
  129.          } catch (InterruptedException var1) {
  130.          }
  131.       }
  132.    }
  133.  
  134.    void Initialize() {
  135.       this.randomizer = new Random(System.currentTimeMillis());
  136.       this.shapeCount = Math.max(Math.abs(this.randomizer.nextInt()) % this.maxShapes, this.minShapes);
  137.       this.field_0 = new int[this.shapeCount];
  138.       this.field_1 = new int[this.shapeCount];
  139.       this.maxW = new int[this.shapeCount];
  140.       this.maxH = new int[this.shapeCount];
  141.       this.currW = new int[this.shapeCount];
  142.       this.currH = new int[this.shapeCount];
  143.       this.pulseDir = new int[this.shapeCount];
  144.       this.color = new int[this.shapeCount];
  145.       this.shapeType = new int[this.shapeCount];
  146.  
  147.       for(int var1 = 0; var1 < this.shapeCount; ++var1) {
  148.          this.field_0[var1] = Math.max(0, Math.abs(this.randomizer.nextInt()) % ((Component)this).size().width);
  149.          this.field_1[var1] = Math.max(0, Math.abs(this.randomizer.nextInt()) % ((Component)this).size().height);
  150.          this.maxW[var1] = Math.max(this.minWidth, Math.abs(this.randomizer.nextInt()) % this.maxWidth);
  151.          this.maxH[var1] = this.maxW[var1];
  152.          this.currW[var1] = this.maxW[var1];
  153.          this.currH[var1] = this.maxH[var1];
  154.          this.color[var1] = Math.abs(this.randomizer.nextInt()) % 12;
  155.          this.pulseDir[var1] = -1;
  156.          this.shapeType[var1] = Math.abs(this.randomizer.nextInt()) % 2;
  157.       }
  158.  
  159.    }
  160.  
  161.    public Dimension minimumSize() {
  162.       return new Dimension(10, 10);
  163.    }
  164.  
  165.    public Dimension preferredSize() {
  166.       return new Dimension(10, 10);
  167.    }
  168.  
  169.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  170.       super.reshape(var1, var2, var3, var4);
  171.       this.osImage = null;
  172.       this.osg = null;
  173.       this.Initialize();
  174.    }
  175.  
  176.    void UpdateSizes() {
  177.       for(int var1 = 0; var1 < this.shapeCount; ++var1) {
  178.          if (this.currW[var1] >= this.minWidth && this.currH[var1] >= this.minHeight) {
  179.             if (this.currW[var1] <= this.maxWidth && this.currH[var1] <= this.maxHeight) {
  180.                int[] var10000 = this.currW;
  181.                var10000[var1] += this.pulseDir[var1];
  182.                var10000 = this.currH;
  183.                var10000[var1] += this.pulseDir[var1];
  184.             } else {
  185.                this.pulseDir[var1] = -this.pulseDir[var1];
  186.                this.currW[var1] = this.maxWidth;
  187.                this.currH[var1] = this.maxHeight;
  188.             }
  189.          } else {
  190.             this.pulseDir[var1] = -this.pulseDir[var1];
  191.             this.currW[var1] = this.minWidth;
  192.             this.currH[var1] = this.minHeight;
  193.          }
  194.       }
  195.  
  196.    }
  197.  
  198.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  199.       ((Component)this).repaint();
  200.       return true;
  201.    }
  202. }
  203.